import { EzForm } from '../ez-form';
import { EzFormControlConfiguration } from '../ez-form-control';
import { EzFormGroup } from '../ez-form-group';
import { EzDatepicker } from './ez-datepicker';

/**
 * 日期选择器配置项
 */
export interface EzDatepickerConfiguration extends EzFormControlConfiguration<Date, EzDatepicker> {
  type: 'datepicker';

  /**
   * 格式化（默认 `yyyy-MM-dd`）
   */
  format?: string;

  /**
   * 是否展示时间选择器
   */
  showTime?: boolean;

  /**
   * 被禁用的日期配置
   */
  disabledDate?: (date: Date, control: EzDatepicker, group: EzFormGroup, form: EzForm) => boolean;

  /**
   * 被禁用的时间配置
   */
  disabledTime?: (
    current: Date,
    control: EzDatepicker,
    group: EzFormGroup,
    form: EzForm
  ) => {
    nzDisabledHours(): number[];
    nzDisabledMinutes(hour: number): number[];
    nzDisabledSeconds(hour: number, minute: number): number[];
  };
}
